package com.peas.platform.module.icims.expenditure.kpis.service;

import com.peas.platform.framework.mybatisplus.service.BaseService;
import com.peas.platform.module.icims.expenditure.kpis.api.req.SaveExpenditureKpiVo;
import com.peas.platform.module.icims.expenditure.kpis.api.req.SubmitExpenditureKpiVo;
import com.peas.platform.module.icims.expenditure.kpis.dto.ExpenditureKpiDto;

import java.math.BigDecimal;

public interface ExpenditureKpiService extends BaseService<ExpenditureKpiDto> {

    ExpenditureKpiDto saveExpenditureKpi(SaveExpenditureKpiVo vo);

    void submitExpenditureKpi(SubmitExpenditureKpiVo vo);

    void revocationExpenditureKpi(Long id);

    BigDecimal getTotalAdjustmentAmount(final Long expenditureKpiId);

    BigDecimal getTotalQuotaAmount(final Long expenditureKpiId);

    BigDecimal getTotalApplicationAmount(final Long expenditureKpiId);

    BigDecimal getTotalReimbursementAmount(final Long expenditureKpiId);

    BigDecimal queryAvailableAmount(final Long expenditureKpiId);

    BigDecimal queryAvailableAmount(final Long expenditureKpiId, final String expenditureEconomicIdStr, final boolean useFluctuate);

}
